import CompressImage from './compressImage'

export default function chooseImgToBase64(callback, size) {
	uni.chooseImage({
		count: 50,
		success: (res) => {
			// size 单位 kb
			for (let i = 0; i < res.tempFiles.length; i++) {
				if (size && res.tempFiles[i].size / 1024 > size) {
					console.warn('图片压缩中')
					new CompressImage({
						res: res.tempFiles[i], // 必选 资源
						// justConversion: true, // 可选 声明了此字段说明只进行格式转换 只需再传入 res requestType responseType callback即可
						width: 800, // 可选(justConversion存在可不选) (默认图片自身宽度,建议自定义) 压缩后图片宽度
						size, // 必选(justConversion存在可不选) 压缩后图片大小 单位k
						requestType: 'file', // 必选 传入文件类别 base64 | file | blob
						responseType: 'file', // 必选 返回文件类别 base64 | file | blob
						// imgType: 'image/jpeg', // 可选 (默认原生文件类型) 返回文件对象的文件类型
						fileName: 'compress_' + res.tempFiles[i].name, // 如果responseType的类型为file和非justConversion 此选项可选 返回文件对象的文件名
						callback: (result) => {
							console.log(result)
							if (result === null) {
								// alert('图片处理异常')
								return
							} else {
								FileToBase64(result, callback, res.tempFiles[i])
							}
						}, // 回调函数 返回处理后文件 如果为null 表示文件处理不了(原因 少了参数 参数不合法 ))
					})
				} else {
					setTimeout(() => {
						FileToBase64(res.tempFiles[i], callback, res.tempFiles[i])
					}, 300)

				}
			}

		},
	})
}






export function chooseVideoToBase64(callback) {
	uni.chooseVideo({
		sourceType: ['camera'],
		maxDuration: 6,
		camera: 'front',
		success: (res) => {
			FileToBase64(res.tempFile, callback)
		},
	})
}

function FileToBase64(file, callback, orginFile) {
	console.log('开始FileToBase64', wx)
	if (wx && typeof wx.getFileSystemManager === 'function' && wx.getFileSystemManager()) {
		wx.getFileSystemManager().readFile({
			filePath: file.path,
			encoding: 'base64',
			complete: (res) => {
				if (res.errMsg === 'readFile:ok') {
					console.log(res)
					callback('data:image/' + file.path.split('.')[1] + ';base64,' + res.data, res.data,
						orginFile)
				}
			},
		})
	} else if (FileReader) {
		let reader = new FileReader()
		reader.onload = function(e) {
			let base64 = e.target.result
			callback(base64, base64.slice(base64.indexOf(',') + 1), orginFile)
		}
		reader.readAsDataURL(file)
	}
}

export function getDateTime(mark) {
	let now = new Date()
	mark = mark || ''
	let date =
		'' +
		now.getFullYear() +
		mark +
		getTwoNum(now.getMonth() + 1) +
		mark +
		getTwoNum(now.getDate())
	let time =
		'' +
		getTwoNum(now.getHours()) +
		getTwoNum(now.getMinutes()) +
		getTwoNum(now.getSeconds())
	return {
		date,
		time,
	}
}

export function getTwoNum(num) {
	if (num < 10) {
		num = '0' + num
	}
	return num
}
